package co.com.smart.persistence.entity.dto;

import java.io.Serializable;
import java.math.BigDecimal;

import javax.persistence.*;

import java.util.Date;
import java.util.List;

/**
 * The persistent class for the smart_persona database table.
 * 
 */
@Entity
@Table(name="smart_persona")
@NamedQuery(name="SmartPersona.findAll", query="SELECT s FROM SmartPersona s")
public class SmartPersona implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="sm_scpersona")
	private BigDecimal smscpersona;

	@Column(name="sm_cousuario")
	private String smcousuario;	

	@Column(name="sm_fhingreso")
	private Date smfhingreso;	

	@Column(name="sm_fhmodificacion")
	private Date smfhmodificacion;		

	@Column(name="sm_fhretiro")
	private Date smfhretiro;		

	@Column(name="sm_dsidentificacion")
	private String smdsidentificacion;	

	@Column(name="sm_dspnombre")
	private String smdspnombre;		

	@Column(name="sm_dspapellido")
	private String smdspapellido;

	@Column(name="sm_dsdireccion")
	private String smdsdireccion;

	@Column(name="sm_dstelefono")
	private String smdstelefono;

	@Column(name="sm_dscelular")
	private String smdscelular;

	@Column(name="sm_dsemail")
	private String smdsemail;

	@Column(name="sm_dsprofesion")
	private String smdsprofesion;

	@Column(name="sm_dsempresatrabaja")
	private String smdsempresatrabaja;

	@Column(name="sm_dssnombre")
	private String smdssnombre;	

	@Column(name="sm_dssapellido")
	private String smdssapellido;

	@Column(name="sm_fhnacimiento")
	private Date smfhnacimiento;

	@Column(name="sm_dsrh")
	private String smdsrh;

	@Column(name="sm_dseps")
	private String smdseps;

	@Column(name="sm_dsbarrio")
	private String smdsbarrio;
	
	@Column(name="sm_dslugarexpedicion")
	private String smdslugarexpedicion;
	
	@Column(name="sm_dscargo")
	private String smdscargo;

	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scciudadnacimiento",referencedColumnName="sm_scciudad")
	private SmartCiudad smscciudadnacimiento;
	
	//bi-directional many-to-one association to SmartDatosMaestro
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_sctipoidentificacion",referencedColumnName="sm_scdatmaestro")
	private SmartDatosMaestro smartDatosMaestroTipoIdentificacion;

	//bi-directional many-to-one association to SmartDatosMaestro
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scsexo",referencedColumnName="sm_scdatmaestro")
	private SmartDatosMaestro smartDatosMaestroSexo;
	
	//bi-directional many-to-one association to SmartCiudad
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smartDirector", fetch = FetchType.LAZY)
	private List<SmartNucleoEducativo> smartNucleoEducativoDirector;


	public BigDecimal getSmscpersona() {
		return smscpersona;
	}

	public void setSmscpersona(BigDecimal smscpersona) {
		this.smscpersona = smscpersona;
	}

	public String getSmcousuario() {
		return smcousuario;
	}

	public void setSmcousuario(String smcousuario) {
		this.smcousuario = smcousuario;
	}

	public Date getSmfhingreso() {
		return smfhingreso;
	}

	public void setSmfhingreso(Date smfhingreso) {
		this.smfhingreso = smfhingreso;
	}

	public Date getSmfhmodificacion() {
		return smfhmodificacion;
	}

	public void setSmfhmodificacion(Date smfhmodificacion) {
		this.smfhmodificacion = smfhmodificacion;
	}

	public Date getSmfhretiro() {
		return smfhretiro;
	}

	public void setSmfhretiro(Date smfhretiro) {
		this.smfhretiro = smfhretiro;
	}

	public String getSmdsidentificacion() {
		return smdsidentificacion;
	}

	public void setSmdsidentificacion(String smdsidentificacion) {
		this.smdsidentificacion = smdsidentificacion;
	}

	public String getSmdspnombre() {
		return smdspnombre;
	}

	public void setSmdspnombre(String smdspnombre) {
		this.smdspnombre = smdspnombre;
	}

	public String getSmdspapellido() {
		return smdspapellido;
	}

	public void setSmdspapellido(String smdspapellido) {
		this.smdspapellido = smdspapellido;
	}

	public String getSmdsdireccion() {
		return smdsdireccion;
	}

	public void setSmdsdireccion(String smdsdireccion) {
		this.smdsdireccion = smdsdireccion;
	}

	public String getSmdstelefono() {
		return smdstelefono;
	}

	public void setSmdstelefono(String smdstelefono1) {
		this.smdstelefono = smdstelefono1;
	}

	public String getSmdscelular() {
		return smdscelular;
	}

	public void setSmdscelular(String smdscelular) {
		this.smdscelular = smdscelular;
	}

	public String getSmdsemail() {
		return smdsemail;
	}

	public void setSmdsemail(String smdsemail) {
		this.smdsemail = smdsemail;
	}

	public String getSmdsprofesion() {
		return smdsprofesion;
	}

	public void setSmdsprofesion(String smdsprofesion) {
		this.smdsprofesion = smdsprofesion;
	}

	public String getSmdsempresatrabaja() {
		return smdsempresatrabaja;
	}

	public void setSmdsempresatrabaja(String smdsempresatrabaja) {
		this.smdsempresatrabaja = smdsempresatrabaja;
	}

	public String getSmdssnombre() {
		return smdssnombre;
	}

	public void setSmdssnombre(String smdssnombre) {
		this.smdssnombre = smdssnombre;
	}

	public String getSmdssapellido() {
		return smdssapellido;
	}

	public void setSmdssapellido(String smdssapellido) {
		this.smdssapellido = smdssapellido;
	}

	public Date getSmfhnacimiento() {
		return smfhnacimiento;
	}

	public void setSmfhnacimiento(Date smfhnacimiento) {
		this.smfhnacimiento = smfhnacimiento;
	}

	public String getSmdsrh() {
		return smdsrh;
	}

	public void setSmdsrh(String smdsrh) {
		this.smdsrh = smdsrh;
	}

	public String getSmdseps() {
		return smdseps;
	}

	public void setSmdseps(String smdseps) {
		this.smdseps = smdseps;
	}

	public String getSmdsbarrio() {
		return smdsbarrio;
	}

	public void setSmdsbarrio(String smdsbarrio) {
		this.smdsbarrio = smdsbarrio;
	}

	public SmartDatosMaestro getSmartDatosMaestroTipoIdentificacion() {
		return smartDatosMaestroTipoIdentificacion;
	}

	public void setSmartDatosMaestroTipoIdentificacion(
			SmartDatosMaestro smartDatosMaestroTipoIdentificacion) {
		this.smartDatosMaestroTipoIdentificacion = smartDatosMaestroTipoIdentificacion;
	}

	public SmartDatosMaestro getSmartDatosMaestroSexo() {
		return smartDatosMaestroSexo;
	}

	public void setSmartDatosMaestroSexo(SmartDatosMaestro smartDatosMaestroSexo) {
		this.smartDatosMaestroSexo = smartDatosMaestroSexo;
	}
	
	public List<SmartNucleoEducativo> getSmartNucleoEduDirector() {
		return this.smartNucleoEducativoDirector;
	}

	public void setSmartSmartNucleoEduDirector(List<SmartNucleoEducativo> smartNucleoEducativoDirector) {
		this.smartNucleoEducativoDirector = smartNucleoEducativoDirector;
	}

	public SmartNucleoEducativo addSmartNucleoEduDirector(SmartNucleoEducativo smartNucleoEducativoDirector) {
		getSmartNucleoEduDirector().add(smartNucleoEducativoDirector);
		smartNucleoEducativoDirector.setSmartDirector(this);
		return smartNucleoEducativoDirector;
	}

	public SmartNucleoEducativo removeSmartNucleoEduDirector(SmartNucleoEducativo smartNucleoEducativoDirector) {
		getSmartNucleoEduDirector().remove(smartNucleoEducativoDirector);
		smartNucleoEducativoDirector.setSmartDirector(null);;
		return smartNucleoEducativoDirector;
	}

	public String getSmdslugarexpedicion() {
		return smdslugarexpedicion;
	}

	public void setSmdslugarexpedicion(String smdslugarexpedicion) {
		this.smdslugarexpedicion = smdslugarexpedicion;
	}

	public String getSmdscargo() {
		return smdscargo;
	}

	public void setSmdscargo(String smdscargo) {
		this.smdscargo = smdscargo;
	}

	public SmartCiudad getSmscciudadnacimiento() {
		return smscciudadnacimiento;
	}

	public void setSmscciudadnacimiento(SmartCiudad smscciudadnacimiento) {
		this.smscciudadnacimiento = smscciudadnacimiento;
	}
	
	
}
